package com.cardone.common.po;

import java.util.Date;
import java.util.Map;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import org.springframework.data.annotation.Transient;

import com.cardone.common.annotation.BeginDate;
import com.cardone.common.annotation.EndDate;
import com.cardone.common.dto.PaginationEntityDto;

/**
 * 用户
 *
 * @author yaohaitao
 *
 */
@Getter
@Setter
@Accessors(chain = true)
public class PoBase implements java.io.Serializable, PaginationEntityDto {
	/**
	 * 版本号
	 */
	private static final long serialVersionUID = -1927823240614686667L;

	/**
	 * 扩展属性
	 */
	private Map<String, Object> attrs;

	/**
	 * 开始时间
	 */
	@BeginDate
	private Date beginDate;

	/**
	 * 代码
	 */
	private String code;

	/**
	 * 创建人代码
	 */
	private String createdByCode;

	/**
	 * 创建人标识
	 */
	private String createdById;

	/**
	 * 创建人名称
	 */
	private String createdByName;

	/**
	 * 创建时间
	 */
	private Date createdDate;

	/**
	 * 创建时间
	 */
	private String createdDateStr;

	/**
	 * 结束时间
	 */
	@EndDate
	private Date endDate;

	/**
	 * 结束时间
	 */
	private String endDateStr;

	/**
	 * 标识集合
	 */
	private String ids;

	/**
	 * 最后修改人代码
	 */
	private String lastModifiedByCode;

	/**
	 * 最后修改人标识
	 */
	private String lastModifiedById;

	/**
	 * 最后修改人名称
	 */
	private String lastModifiedByName;

	/**
	 * 最后修改时间
	 */
	private Date lastModifiedDate;

	/**
	 * 登录用户代码(数据权限控制时使用)
	 */
	private String longinUserCode;

	/**
	 * 登录用户标识(数据权限控制时使用)
	 */
	private String longinUserId;

	/**
	 * 登录用户名称(数据权限控制时使用)
	 */
	private String longinUserName;

	/**
	 * 名称
	 */
	private String name;

	/**
	 * 排序数
	 */
	private Double orderNum;

	/**
	 * 分页号
	 */
	@Transient
	private int paginationNo;

	/**
	 * 分页大小
	 */
	@Transient
	private int paginationSize;

	/**
	 * 状态代码
	 */
	private String stateCode;

	/**
	 * 状态标识
	 */
	private String stateId;

	/**
	 * 状态标识集合
	 */
	private String stateIds;

	/**
	 * 状态名称
	 */
	private String stateName;

	/**
	 * 验证类型代码
	 */
	@Transient
	private String validatorTypeCodes;

	/**
	 * 版本
	 */
	private Double version;
}